-- $Id$
-- $Source$
-- *****************************************************************
-- Definitions of managed objects that describe image provisioning
-- information for DSL CPEs.
--
-- March 2000, Patrick Gili
--
-- Copyright (c) 2001 by Cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
-- $Log$
-- *****************************************************************
-- $Endlog$

--%DNP% ENG-59603

CISCO-DSL-CPE-IMAGE-PROV-MIB DEFINITIONS ::= BEGIN

IMPORTS
    Integer32,
    MODULE-IDENTITY,
    OBJECT-TYPE                         FROM SNMPv2-SMI
    DisplayString,
    RowStatus,
    TruthValue,
    TEXTUAL-CONVENTION                  FROM SNMPv2-TC
    MODULE-COMPLIANCE,
    OBJECT-GROUP                        FROM SNMPv2-CONF
    ciscoCibProvGroup                   FROM CISCO-SMI
    SnmpAdminString                     FROM SNMP-FRAMEWORK-MIB
    ChangeSet,
    cdcpEntityIndex                     FROM CISCO-DSL-CPE-PROV-MIB
    ;

ciscoDslCpeImageProvMIB MODULE-IDENTITY
    LAST-UPDATED   "200011012246Z" -- November 1, 2000 05:46 PM
    ORGANIZATION   "Cisco Systems, Inc."
    CONTACT-INFO   "Cisco System
                    Customer Service

                    Postal: 170 W Tasman Drive
                    San Jose, CA 95134

                    Tel: +1 800 555-NETS

                    E-mail: cs-xdsl@cisco.com"
    DESCRIPTION
        "This MIB module defines managed objects that described DSL CPE
        image provisioning.
    
        From the perspective of the proxy element function, the contents
        of an image is opaque.  However, the contents of an image can be
        anything, including a firmware image, executable, dynamically
        loadable module, configuration information, or data.
    
        *** ABBREVIATIONS, ACRONYMS, AND SYMBOLS ***
    
        CIB - Provisioning Information Base
    
        CPE - Customer Premise Equipment
    
        DSL - Digital Subscriber Loop

        DSLAM - Digital Subscriber Loop Access Multiplexor
    
        MMI - Modem Management Interface
    
        *** DEFINITIONS ***
    
        DSL CPE
            A device that internetworks a customer premise network
            with a DSL provider's network.
    
        MODEM MANAGEMENT INTERFACE
            An interface between the proxy element function and DSL
            CPEs that provides a network management framework for the
            management of DSL CPEs.  In concept, this interface is
            similar to the ILMI (Integrated Local Management Interface)
            defined by the ATM Forum (af-ilmi-0065.000).  Like the ILMI,
            it consists of an AAL5 transport mapping for SNMP messages,
            a collection of MIB modules, and elements of procedure
            defining the behavior of the interface.
            
        CONFIGURATION INFORMATION BASE
            A set of managed objects that describe the configurations
            for the DSL CPEs served by a proxy element.
        
            The proxy element function only supports access to the CIB
            through two locally available contexts:
        
            1)  'pef' -- used by SNMP entities managing the CIB.
        
            2)  'mmi' -- used by DSL CPEs through the MMI.
        
            The proxy element function configures the view-based access
            control subsystem such that SNMP entities accessing the CIB
            through the 'pef' context have read-write access to the 
            objects contained by the CIB, with exceptions noted by
            the description of managed objects defined by this MIB
            module.
        
            The proxy element function configures the view-based access
            control subsystem such that SNMP entities accessing the CIB
            through the 'mmi' context have read access to the objects
            contained by the CIB, with exceptions noted by the the
            description of managed objects defined by this MIB module.
            In addition, this view specifies read access to the
            atmTrafficDescrParamTable (defined by the ATM-MIB) and the
            atmTrafficDescrParamExtTable (defined by the
            CISCO-ATM-TRAFFIC-MIB).
        
            A proxy element function supports three views into the CIB:
        
            1)  Working View -- this view uses the access policy defined
                by the proxy element function for SNMP entities
                accessing the CIB through the 'pef' context.  This view
                is unique to the owner of the CIB (i.e. the SNMP entity
                that has acquired exclusive write access to the CIB).
                Only the owner of the CIB can see changes that it makes,
                until it releases ownership.
            
            2)  Managed View -- this view uses the access policy defined
                by the proxy element function for SNMP entities
                accessing the CIB through the 'pef' context.  However,
                an SNMP entity can not actually write the CIB until it
                acquires exclusive write access to the CIB.  Changes
                made to the CIB can not be seen through this view until
                the SNMP entity making changes has released ownership of
                the CIB.
            
            3)  Committed View -- this view uses the access policy
                defined by the proxy element function for SNMP entities
                access the CIB through the 'mmi' context.  Changes made
                to the CIB can not be seen through this view until the
                following criteria have been satisified:
            
                a - no SNMP entity owns the CIB (i.e., has acquired
                    exclusive write access to the CIB).
                
                b - no CPE is retrieving configuration information
                    using the MMI automatic configuration procedure
                    or MMI dynamic configuration procedure.
        
        PROXY ELEMENT
            A host of the proxy element function.
        
        PROXY ELEMENT FUNCTION
            A subsystem consisting of the MMI and a SNMP proxy forwarder
            application.  This subsystem enables massively scalable 
            management of the DSL CPEs attached to a provider's network.
        "
    REVISION      "200011012246Z" -- November 1, 2000 05:46 PM
    DESCRIPTION
        "Initial revision of this MIB module."
    ::= { ciscoCibProvGroup 3 }

-- Textual Conventions

ImageIndex ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "An arbitrary integer-value that uniquely identifies an image
        in the scope of a DSL CPE."
    SYNTAX Integer32 (1..2147483647)

-- MIB Object Definitions

ciscoDslCpeImageProvMIBObjects OBJECT IDENTIFIER
    ::= { ciscoDslCpeImageProvMIB 1 }

cdcpImageTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CdcpImageEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table lists the provisioned images for each DSL CPE 
        served by the proxy element function.  This table has an
        expansion dependent relationship on the cdcpEntityTable.
        When an SNMP entity deletes a conceptual row from the
        cdcpEntityTable, then the proxy element function implicitly
        deletes any conceptual rows from this table that have a
        dependency on the cdcpEntityEntry being deleted."
    ::= { ciscoDslCpeImageProvMIBObjects 1 }

cdcpImageEntry OBJECT-TYPE
    SYNTAX      CdcpImageEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A description of a provisioned image.  A provisioned image
        only applies to the DSL CPE in its scope.
        
        When the DSL CPE, identified by the value of cdcpEntityIndex,
        performs the MMI image maintenance procedure, it compares
        the image it contains having the index specified by the value
        cdcpImageIndex against the information specified by this
        description.  If the ID and revision of the image do not
        match those specified by this description, then the DSL CPE
        signals the proxy element function that it has detected an
        image mismatch."
    INDEX       { cdcpEntityIndex, cdcpImageIndex }
    ::= { cdcpImageTable 1 }

CdcpImageEntry ::= SEQUENCE {
    cdcpImageIndex      ImageIndex,
    cdcpImageRowStatus  RowStatus,
    cdcpImageChangeSet  ChangeSet,
    cdcpImageID         SnmpAdminString,
    cdcpImageRevision   SnmpAdminString,
    cdcpImageUrlPri     DisplayString,
    cdcpImageUrlSec     DisplayString,
    cdcpImageAction     INTEGER,
    cdcpImageFailure    TruthValue
}

cdcpImageIndex OBJECT-TYPE
    SYNTAX      ImageIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object uniquely identifies a provisioned image in the
        scope of the DSL CPE identified by the cdcpEntityIndex.  This
        value serves as a 'file handle' of a sort.  For example, a
        low-end DSL CPE may support three images:
        
        image index  application
        -----------  -----------
             1       boot firmware image
             2       operational firmware image
             3       operational firmware image backup
             4       configuration file
             
        A manager can provision any image contained by a DSL CPE for
        which the DSL CPE assigns an image index.
        
        Observe that it is highly likely that the application of an
        image varies between DSL CPEs of different vendor and/or
        model."
    ::= { cdcpImageEntry 1 }

cdcpImageRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the row-status for a conceptual row in
        this table.

        A manager can create a conceptual row in this table by setting
        the value of this object to 'createAndWait'.  The proxy element
        function does not support the 'createAndGo' method for
        conceptual row creation.

        A manager can delete a conceptual row in this table by setting
        the value of this object to 'destroy'.

        A manager must set the value of this object to 'notInService'
        in order to modify the value of object in a conceptual row in
        this table, except when noted by the description of an object.

        A manager must activate the conceptual row (i.e., set the value
        of the row-status to 'active') in order for the proxy element
        function to commit changes (i.e., creation or modifications) to
        the committed view of the CIB when the manager releases
        exclusive write-access to the CIB."
    ::= { cdcpImageEntry 2 }

cdcpImageChangeSet OBJECT-TYPE
    SYNTAX      ChangeSet
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies the change set for this conceptual row."
    ::= { cdcpImageEntry 3 }

cdcpImageID OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies an identifier for this image.  A vendor
        typically embeds this information in the image.
        
        Observe that this value is not a file or image name.  It does
        not necessarily provide a value that uniquely identifies an
        image with respect to a DSL CPE.  For example, consider the
        same low-end DSL CPE described above.  It is possible that the
        images contained by this DSL CPE with the image indices of 2
        and 3 have the same image identifier."
    ::= { cdcpImageEntry 4 }

cdcpImageRevision OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the revision for this image.  A vendor
        typically embeds this information in the image."
    ::= { cdcpImageEntry 5 }

cdcpImageUrlPri OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies a URL (see RFC-1630) that specifies the
        primary location where the proxy element function can find a
        copy of this image.  The proxy element function uses this
        information to retrieve a copy of this image when the DSL CPE,
        identified by the value of cdcpEntityIndex, signals an image
        mismatch and the proxy element function finds that this image
        is the offending image."
    ::= { cdcpImageEntry 6 }

cdcpImageUrlSec OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies a URL (see RFC-1630) that specifies the
        secondary location where the proxy element function can find a
        copy of this image.  The proxy element function uses this
        information to retrieve a copy of this image when it fails to
        retrieve a copy from the primary location specified by the
        value of cdcpImageUrlPri."
    ::= { cdcpImageEntry 7 }

cdcpImageAction OBJECT-TYPE
    SYNTAX      INTEGER {
        nothing(1),
        warmRestart(2),
        coldRestart(3)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the action that must be taken by the
        proxy element function following a successful download of this
        image to the the DSL CPE.  If the proxy element function
        downloaded more than one image during image mismatch handling,
        then it must perform the most severe of the actions (i.e., the
        action with the highest value) assigned to the images that it
        downloaded to the DSL CPE."
    ::= { cdcpImageEntry 8 }

cdcpImageFailure OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies whether the proxy element function failed
        its last attempt to retrieve a copy of this image; that is, the
        last time the proxy element function attempted to retrieve this
        image, it failed to retrieve it from both the primary and 
        secondary location specified by the values of cdcpImageUrlPri
        and cdcpImageUrlSec, respectively."
    ::= { cdcpImageEntry 9 }

-- MIB Notification Definitions

ciscoDslCpeImageProvMIBNotificationsPrefix OBJECT IDENTIFIER
    ::= { ciscoDslCpeImageProvMIB 2 }

ciscoDslCpeImageProvMIBNotifications OBJECT IDENTIFIER
    ::= { ciscoDslCpeImageProvMIBNotificationsPrefix 0 }

-- MIB Conformance Statements

ciscoDslCpeImageProvMIBConformance OBJECT IDENTIFIER
    ::= { ciscoDslCpeImageProvMIB 3 }

ciscoDslCpeImageProvMIBCompliances OBJECT IDENTIFIER
    ::= { ciscoDslCpeImageProvMIBConformance 1 }

ciscoDslCpeImageProvMIBGroups OBJECT IDENTIFIER
    ::= { ciscoDslCpeImageProvMIBConformance 2 }

-- Compliance

ciscoDslCpeImageProvMIBCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "This compliance statement applies to any SNMP entity supporting
        the proxy element function.  Implementation of this MIB module
        is necessary to support the image management capability of the
        proxy element function."

    MODULE -- this module
        MANDATORY-GROUPS {
            cdcpImageBasicGroup
        }

    ::= { ciscoDslCpeImageProvMIBCompliances 1 }

-- Units of Conformance

cdcpImageBasicGroup OBJECT-GROUP
    OBJECTS {
        cdcpImageRowStatus,
        cdcpImageChangeSet,
        cdcpImageID,
        cdcpImageRevision,
        cdcpImageUrlPri,
        cdcpImageUrlSec,
        cdcpImageAction,
        cdcpImageFailure
    }
    STATUS      current
    DESCRIPTION
        "A collection of managed objects that define image provisioning
        information for DSL CPEs."
    ::= { ciscoDslCpeImageProvMIBGroups 1 }
    
END